package cn.kgc.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "company")
@JsonInclude(value = JsonInclude.Include.ALWAYS)
@SuppressWarnings("all")
public class Company extends Model<Company> implements Serializable {

    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 企业名称
     */
    @TableField(value = "company_name")
    private String companyName;

    /**
     * 企业短名
     */
    @TableField(value = "short_name")
    private String shortName;

    /**
     * 企业logo
     */
    @TableField(value = "logo")
    private String logo;

    /**
     * 营业执照
     */
    @TableField(value = "biz_license")
    private String bizLicense;

    /**
     * 企业所在国家
     */
    @TableField(value = "country")
    private String country;

    /**
     * 所在省份
     */
    @TableField(value = "province")
    private String province;

    /**
     * 所在市
     */
    @TableField(value = "city")
    private String city;

    /**
     * 所在区县
     */
    @TableField(value = "district")
    private String district;

    /**
     * 公司办公地址
     */
    @TableField(value = "address")
    private String address;

    /**
     * 公司性质
     */
    @TableField(value = "nature")
    private String nature;

    /**
     * 人员规模/企业规模
     */
    @TableField(value = "people_size")
    private String peopleSize;

    /**
     * 所在行业
     */
    @TableField(value = "industry")
    private String industry;

    /**
     * 融资阶段
     */
    @TableField(value = "financ_stage")
    private String financStage;

    /**
     * 工作时间，例：9:00-18:00 周末单休
     */
    @TableField(value = "work_time")
    private String workTime;

    /**
     * 公司简介
     */
    @TableField(value = "introduction")
    private String introduction;

    /**
     * 公司优势，例：领导和睦 岗位晋升
     */
    @TableField(value = "advantage")
    private String advantage;

    /**
     * 福利待遇，例：五险一金 定期体检
     */
    @TableField(value = "benefits")
    private String benefits;

    /**
     * 薪资福利（奖金），例：年底双薪
     */
    @TableField(value = "bonus")
    private String bonus;

    /**
     * 补助津贴，例：住房补贴
     */
    @TableField(value = "subsidy")
    private String subsidy;

    /**
     * 成立时间
     */
    @TableField(value = "build_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date buildDate;

    /**
     * 注册资本
     */
    @TableField(value = "regist_capital")
    private String registCapital;

    /**
     * 注册地址
     */
    @TableField(value = "regist_place")
    private String registPlace;

    /**
     * 法人代表
     */
    @TableField(value = "legal_representative")
    private String legalRepresentative;

    /**
     * 审核状态
     * 0：未发起审核认证(未进入审核流程)
     * 1：审核认证通过
     * 2：审核认证失败
     * 3：审核中（等待审核）
     */
    @TableField(value = "review_status")
    private Integer reviewStatus;

    /**
     * 审核回复/审核意见
     */
    @TableField(value = "review_replay")
    private String reviewReplay;

    /**
     * 入驻平台授权书
     */
    @TableField(value = "auth_letter")
    private String authLetter;

    /**
     * 提交申请人的用户id
     */
    @TableField(value = "commit_user_id")
    private String commitUserId;

    /**
     * 提交申请人的手机号
     */
    @TableField(value = "commit_user_mobile")
    private String commitUserMobile;

    /**
     * 提交审核的日期
     */
    @TableField(value = "commit_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date commitDate;

    /**
     * 0: 否  1: 是
     */
    @TableField(value = "is_vip")
    private Integer isVip;

    /**
     * Vip过期日期，判断企业是否vip，需要is_vip=1并且过期日期>=当前日期
     */
    @TableField(value = "vip_expire_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date vipExpireDate;

    @TableField(value = "created_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;

    @TableField(value = "updated_time",fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedTime;
}